package cam.School.DataAccessObject;

import java.util.Date;
import java.util.List;

import cam.School.DAOException.DAOException;
import cam.School.DataTransfertObject.CallResult;
import cam.School.DataTransfertObject.ClassRoomDTO;
import cam.School.DataTransfertObject.EventDTO;


public interface EventDAO {
	
	public EventDTO getById(Long id) throws DAOException;

	public List<EventDTO> getAll() throws DAOException;

	public CallResult create(EventDTO event) throws IllegalArgumentException,
			DAOException;

	public void update(EventDTO event) throws IllegalArgumentException,
			DAOException;

	public boolean delete(int eventId);

	public EventDTO getByName(String firstName);
	
	public EventDTO getByDescription(String description);

	public EventDTO getByStartDate(Date startDate);

	public EventDTO getByEndDate(Date endDate);

	public EventDTO getByRange(Date from, Date to);

	
	public int update(long id);
	
	public List<EventDTO> getByOrganisatorId(long organisatorId);
	
	public List<EventDTO> getByLocation(String locationName);


}
